perm filename EDIT.INI[206,JMC] blob
sn#254298 filedate 1977-01-29 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002
C00005 ENDMK
Cā;
;;;Say:
(EDITCOMMAND STR (%EVALUATE (LIST 'CR (PRINB %#CE NIL))))
(EDITCOMMAND SEX (%EVALUATE (LIST 'CR (READB %#CE))))
;;;Then "FOO" to the editor will replace the CE with <FUNCTION>
;;;applied to it. "FOO-1" will replace it with the inverse.
;;;If you make up a file called EDIT.INI with these expressions in
;;;it, they will always be defined when you edit.
(DEFUN READA (U L) (COND
((NULL U)
(CONS (REV1 L 'ERROR) NIL)
)
((EQ (CAR U) 'RP)
(CONS (REVERSE L) (CDR U))
)
((EQ (CAR U) 'LP)
((LAMBDA (W) (READA (CDR W) (CONS (CAR W) L)))
(READA (CDR U) NIL))
)
((EQ (CAR U) 'DOT)
((LAMBDA (W) (CONS (REV1 L (CAAR W)) (CDR W)))
(READA (CDR U) NIL))
)
(T
(READA (CDR U) (CONS (CAR U) L))
)
))
(DEFUN READB (U) (COND
((EQ (CAR U) 'LP)
(CAR (READA (CDR U) NIL))
)
(T
(CAR U)
)
))
(DEFUN REV1 (U V) (COND ((NULL U) V) (T (REV1 (CDR U) (CONS (CAR U) V)))))
(DEFUN PRINB (E L) (COND
((ATOM E)
(CONS E L)
)
(T
(CONS 'LP (COND
((NULL (CDR E))
(PRINB (CAR E) (CONS 'RP L))
)
((ATOM (CDR E))
(PRINB (CAR E) (CONS 'DOT (CONS (CDR E) (CONS 'RP L))))
)
(T
(PRINB (CAR E) (CDR (PRINB (CDR E) L)))
)
))
)
))